Skip to content

SDKS-5067: Standardize SDK Configuration#118

Merged
SteinGabriel merged 1 commit into
mainfrom
SDKS-5067
Jul 13, 2026
Merged

SDKS-5067: Standardize SDK Configuration#118
SteinGabriel merged 1 commit into
mainfrom
SDKS-5067

Conversation

@SteinGabriel

@SteinGabriel SteinGabriel commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Summary

https://pingidentity.atlassian.net/browse/SDKS-5067

Migrates SDK credentials out of environment variables and into a per-app
config.json file using the unified SDK configuration schema. All three
JavaScript sample apps (reactjs-todo-davinci, reactjs-todo-oidc,
reactjs-todo-journey) now accept a structured JSON config object detected and
mapped to internal config automatically by the factory discriminator.

Changes

reactjs-todo-davinci

  • constants.js — replaces WEB_OAUTH_CLIENT/SCOPE/WELLKNOWN_URL env
    vars with CONFIG imported from config.json; falls back to SDK_CONFIG
    env var (JSON string) for e2e/CI
  • config.example.json — new committed template for the unified SDK config
    shape
  • config.test.json / config.test.fido.json — committed test fixtures
    replacing hardcoded Playwright env vars
  • playwright.config.ts — uses SDK_CONFIG: JSON.stringify(testConfig)
    instead of individual credential vars
  • webpack.config.js — removes WEB_OAUTH_CLIENT/SCOPE/WELLKNOWN_URL;
    injects SDK_CONFIG
  • .env.example — removes SDK credential vars; adds migration note
  • .gitignore — adds config.json

reactjs-todo-oidc

  • constants.js — same pattern as davinci; preserves SERVER env var
    (PingAM/PingOne display-name logic)
  • config.example.json — new committed template
  • config.test.pingam.json / config.test.pingone.json — per-server test
    fixtures
  • playwright.config.ts — uses SDK_CONFIG per project config
  • webpack.config.js — same removals/additions as davinci
  • .env.example, .gitignore, README.md, client/README.md — updated

reactjs-todo-journey

  • constants.js — Vite JSON import (import.meta.env.VITE_SDK_CONFIG
    override for CI)
  • config.example.json — new committed template
  • config.test.json — committed test fixture
  • playwright.config.js — uses VITE_SDK_CONFIG: JSON.stringify(testConfig)
  • .env.example, .gitignore, README.md — updated

Tests

  • All three apps' Playwright e2e configs verified against new
    SDK_CONFIG/VITE_SDK_CONFIG injection pattern
  • Existing e2e suites pass with migrated config (webpack apps have a
    pre-existing babel-loader/validateOptions failure at bc9ebef unrelated
    to this change)

How to test

1. Local dev setup

Copy config.example.jsonconfig.json in each app root, fill in
clientId, discoveryEndpoint, scopes, redirectUri. Copy .env.example
.env, fill remaining runtime vars. Run npm run start:reactjs-todo-dv
(or journey/oidc variant) from javascript/. Verify auth flow completes.

2. E2E run

Run npm run e2e --workspace reactjs-todo-davinci, --workspace reactjs-todo-journey, and --workspace reactjs-todo-oidc from
javascript/. All suites should pass. Confirm config.json is not committed
(gitignored).

3. Verify backward-compat

Confirm no WEB_OAUTH_CLIENT, SCOPE, or WELLKNOWN_URL (or VITE_
variants) remain in .env.example, webpack.config.js, or Playwright
configs.

Summary by CodeRabbit

  • New Features

    • Added a unified SDK/OIDC configuration workflow using optional local configuration files or runtime settings.
    • Added configuration templates for credentials, discovery endpoints, scopes, and redirect URLs.
    • Added automatic fallback configuration for builds and local development when custom configuration is unavailable.
  • Documentation

    • Updated setup instructions with SDK credential configuration guidance.
    • Simplified environment variable examples and clarified runtime settings.
    • Updated local setup guidance to use HTTPS callback and allowed-origin URLs.
  • Tests

    • Updated browser test configuration to use dedicated SDK/OIDC test settings.

@coderabbitai

coderabbitai Bot commented Jun 9, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: fb97e7ed-73f7-4a3a-a085-f629b6780701

📥 Commits

Reviewing files that changed from the base of the PR and between 93a2e26 and 5a526af.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (35)
  • javascript/reactjs-todo-davinci/.env.example
  • javascript/reactjs-todo-davinci/.gitignore
  • javascript/reactjs-todo-davinci/README.md
  • javascript/reactjs-todo-davinci/client/components/davinci-client/hooks/create-client.utils.js
  • javascript/reactjs-todo-davinci/client/constants.js
  • javascript/reactjs-todo-davinci/client/context/oidc.context.js
  • javascript/reactjs-todo-davinci/config.example.json
  • javascript/reactjs-todo-davinci/config.test.fido.json
  • javascript/reactjs-todo-davinci/config.test.json
  • javascript/reactjs-todo-davinci/package.json
  • javascript/reactjs-todo-davinci/playwright.config.ts
  • javascript/reactjs-todo-davinci/webpack.config.js
  • javascript/reactjs-todo-journey/.env.example
  • javascript/reactjs-todo-journey/.gitignore
  • javascript/reactjs-todo-journey/README.md
  • javascript/reactjs-todo-journey/client/components/journey/journey.hook.js
  • javascript/reactjs-todo-journey/client/constants.js
  • javascript/reactjs-todo-journey/client/context/oidc.context.js
  • javascript/reactjs-todo-journey/config.example.json
  • javascript/reactjs-todo-journey/config.test.json
  • javascript/reactjs-todo-journey/package.json
  • javascript/reactjs-todo-journey/playwright.config.js
  • javascript/reactjs-todo-journey/vite.config.js
  • javascript/reactjs-todo-oidc/.env.example
  • javascript/reactjs-todo-oidc/.gitignore
  • javascript/reactjs-todo-oidc/README.md
  • javascript/reactjs-todo-oidc/client/README.md
  • javascript/reactjs-todo-oidc/client/constants.js
  • javascript/reactjs-todo-oidc/client/context/oidc.context.js
  • javascript/reactjs-todo-oidc/config.example.json
  • javascript/reactjs-todo-oidc/config.test.pingam.json
  • javascript/reactjs-todo-oidc/config.test.pingone.json
  • javascript/reactjs-todo-oidc/package.json
  • javascript/reactjs-todo-oidc/playwright.config.ts
  • javascript/reactjs-todo-oidc/webpack.config.js
🚧 Files skipped from review as they are similar to previous changes (32)
  • javascript/reactjs-todo-journey/config.example.json
  • javascript/reactjs-todo-davinci/config.example.json
  • javascript/reactjs-todo-oidc/.gitignore
  • javascript/reactjs-todo-oidc/config.test.pingone.json
  • javascript/reactjs-todo-davinci/config.test.json
  • javascript/reactjs-todo-journey/.gitignore
  • javascript/reactjs-todo-journey/playwright.config.js
  • javascript/reactjs-todo-davinci/client/components/davinci-client/hooks/create-client.utils.js
  • javascript/reactjs-todo-davinci/.gitignore
  • javascript/reactjs-todo-journey/config.test.json
  • javascript/reactjs-todo-journey/vite.config.js
  • javascript/reactjs-todo-journey/package.json
  • javascript/reactjs-todo-davinci/package.json
  • javascript/reactjs-todo-oidc/client/README.md
  • javascript/reactjs-todo-oidc/config.example.json
  • javascript/reactjs-todo-journey/client/context/oidc.context.js
  • javascript/reactjs-todo-oidc/README.md
  • javascript/reactjs-todo-davinci/webpack.config.js
  • javascript/reactjs-todo-davinci/config.test.fido.json
  • javascript/reactjs-todo-oidc/client/constants.js
  • javascript/reactjs-todo-davinci/playwright.config.ts
  • javascript/reactjs-todo-oidc/client/context/oidc.context.js
  • javascript/reactjs-todo-oidc/webpack.config.js
  • javascript/reactjs-todo-journey/README.md
  • javascript/reactjs-todo-davinci/README.md
  • javascript/reactjs-todo-journey/.env.example
  • javascript/reactjs-todo-oidc/.env.example
  • javascript/reactjs-todo-davinci/.env.example
  • javascript/reactjs-todo-davinci/client/context/oidc.context.js
  • javascript/reactjs-todo-journey/client/constants.js
  • javascript/reactjs-todo-davinci/client/constants.js
  • javascript/reactjs-todo-oidc/playwright.config.ts

📝 Walkthrough

Walkthrough

The three React sample apps now load SDK and OIDC settings from JSON configuration, normalize them with SDK utility helpers, support missing local config files during builds, inject test configuration through Playwright, and document the revised setup.

Changes

SDK Config Migration

Layer / File(s) Summary
Config schema and setup documentation
javascript/reactjs-todo-{davinci,journey,oidc}/config*.json, */.env.example, */README.md, */.gitignore, javascript/reactjs-todo-oidc/client/README.md
Adds OIDC configuration templates and test data, ignores local config.json, removes SDK credentials from environment examples, and documents JSON-based setup.
Unified constants and SDK utility dependency
javascript/reactjs-todo-{davinci,journey,oidc}/client/constants.js, */package.json
Builds CONFIG from JSON or serialized SDK configuration, removes legacy OIDC environment exports, and adds @forgerock/sdk-utilities.
SDK helpers in client initialization
javascript/reactjs-todo-davinci/client/components/davinci-client/hooks/create-client.utils.js, javascript/reactjs-todo-{davinci,journey,oidc}/client/context/oidc.context.js, javascript/reactjs-todo-journey/client/components/journey/journey.hook.js
Normalizes DaVinci, Journey, and OIDC configuration before client initialization and updates OIDC hook dependencies.
Build-time config fallback
javascript/reactjs-todo-davinci/webpack.config.js, javascript/reactjs-todo-journey/vite.config.js, javascript/reactjs-todo-oidc/webpack.config.js
Adds optional config.json resolution and injects SDK_CONFIG into generated client bundles.
E2E SDK configuration injection
javascript/reactjs-todo-davinci/playwright.config.ts, javascript/reactjs-todo-journey/playwright.config.js, javascript/reactjs-todo-oidc/playwright.config.ts
Loads test configuration JSON and passes serialized configuration to the corresponding web servers.

Estimated code review effort: 4 (Complex) | ~45 minutes

Suggested reviewers: ancheetah, ryanbas21, cerebrl

Poem

A bunny found config in a JSON nest,
With SDK helpers tidying the rest.
Three apps hop in line,
While test settings shine—
And local secrets stay safely suppressed.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 54.55% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and accurately summarizes the main change: standardizing SDK configuration across the sample apps.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch SDKS-5067

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install timed out. The project may have too many dependencies for the sandbox.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@vatsalparikh vatsalparikh left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should update reactjs-todo-login-widget's configuration too

@SteinGabriel SteinGabriel marked this pull request as draft June 11, 2026 23:41
@SteinGabriel SteinGabriel force-pushed the SDKS-5067 branch 6 times, most recently from 363e5dc to 93a2e26 Compare June 16, 2026 17:41
@SteinGabriel SteinGabriel marked this pull request as ready for review June 16, 2026 18:34
@SteinGabriel

Copy link
Copy Markdown
Contributor Author

We should update reactjs-todo-login-widget's configuration too

The login widget app uses @forgerock/login-widget, with its own configuration().set() API, not the OIDC/Journey/Davinci factory functions this ticket implements. I guess the unified config schema and "make config" utilities don't apply here at the moment. We might need a ticket for implementing this in the login framework repo as well, though.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
javascript/reactjs-todo-davinci/client/context/oidc.context.js (1)

34-63: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Missing json in useEffect dependency array.

The useEffect at line 34 uses the json parameter inside initOidcClient() (line 48) but omits json from the dependency array at line 63. This breaks the React hook contract: if json changes, the OIDC client will not be re-initialized with the new configuration. The reactjs-todo-journey version of this file correctly includes [json, oidcClient].

[major]

🔧 Proposed fix: Add `json` to the dependency array
  }, [oidcClient]);
+ }, [json, oidcClient]);
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@javascript/reactjs-todo-davinci/client/context/oidc.context.js` around lines
34 - 63, The useEffect hook starting at line 34 uses the json parameter inside
the initOidcClient function when calling makeOidcConfig(json), but json is
missing from the dependency array at line 63. Add json to the dependency array
alongside oidcClient so that when json changes, the OIDC client will be
re-initialized with the new configuration, ensuring the React hook contract is
followed.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@javascript/reactjs-todo-davinci/client/constants.js`:
- Line 29: The rawConfig constant assignment does not handle errors when parsing
process.env.SDK_CONFIG, which will cause the entire module to fail loading if
the JSON is malformed. Wrap the JSON.parse call in a try-catch block, and if
parsing throws an error, fall back to using sdkConfigJson as the default value.
This ensures the application can still initialize even when SDK_CONFIG contains
invalid JSON.

In `@javascript/reactjs-todo-davinci/playwright.config.ts`:
- Line 3: The import statement for testFidoConfig is triggering a no-unused-vars
lint error because the variable is only referenced in commented code and not
actively used. Either remove the import statement for testFidoConfig entirely if
it is not needed, or uncomment and properly integrate the code that uses
testFidoConfig so the variable is actively referenced in the configuration.

In `@javascript/reactjs-todo-davinci/README.md`:
- Around line 65-70: The README.md file contains an inconsistency in the
redirect URI configuration examples, showing
https://localhost:8443/callback.html in one location and
http://localhost:8443/callback.html in another. Update the redirect URI in the
OIDC configuration example to use the same protocol (http or https) consistently
throughout the entire README file to prevent configuration errors during user
onboarding.

In `@javascript/reactjs-todo-journey/client/constants.js`:
- Around line 31-33: The JSON parsing of environment variables can cause module
load-time crashes if the JSON is malformed. In
javascript/reactjs-todo-journey/client/constants.js lines 31-33, wrap the
JSON.parse call for import.meta.env.VITE_SDK_CONFIG in a try/catch block and
fallback to sdkConfigJson on parse failure. Apply the same guarded
parse/fallback pattern in javascript/reactjs-todo-oidc/client/constants.js line
28 for process.env.SDK_CONFIG to ensure both modules gracefully handle invalid
JSON without crashing at load time.
- Around line 35-40: The CONFIG object in both files unconditionally overwrites
the redirectUri property, ignoring any pre-configured value from rawConfig. In
javascript/reactjs-todo-journey/client/constants.js at lines 35-40, modify the
oidc.redirectUri assignment to conditionally use the value from
rawConfig.oidc.redirectUri when it exists, falling back to the
window.location.origin-based URL only when it is missing or undefined. Apply the
identical conditional fallback pattern to
javascript/reactjs-todo-oidc/client/constants.js at lines 30-35 so that any
configured redirect URI in rawConfig is preserved instead of being clobbered.

In `@javascript/reactjs-todo-journey/vite.config.js`:
- Line 44: The current code uses new URL(...).pathname to construct a file path
for the config.json file, which is unreliable on Windows and other platforms due
to leading slashes and unencoded characters. Import the fileURLToPath function
from the built-in url module and replace the pathname-based approach in the
optionalConfigJson call with fileURLToPath(new URL('./config.json',
import.meta.url)) to ensure the path works correctly across all platforms when
checked by existsSync.

---

Outside diff comments:
In `@javascript/reactjs-todo-davinci/client/context/oidc.context.js`:
- Around line 34-63: The useEffect hook starting at line 34 uses the json
parameter inside the initOidcClient function when calling makeOidcConfig(json),
but json is missing from the dependency array at line 63. Add json to the
dependency array alongside oidcClient so that when json changes, the OIDC client
will be re-initialized with the new configuration, ensuring the React hook
contract is followed.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 809bdce5-7376-4f24-8136-1a1fa2a83af3

📥 Commits

Reviewing files that changed from the base of the PR and between 6cac3c2 and 93a2e26.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (36)
  • javascript/reactjs-todo-davinci/.env.example
  • javascript/reactjs-todo-davinci/.gitignore
  • javascript/reactjs-todo-davinci/README.md
  • javascript/reactjs-todo-davinci/client/components/davinci-client/hooks/create-client.utils.js
  • javascript/reactjs-todo-davinci/client/constants.js
  • javascript/reactjs-todo-davinci/client/context/oidc.context.js
  • javascript/reactjs-todo-davinci/config.example.json
  • javascript/reactjs-todo-davinci/config.test.fido.json
  • javascript/reactjs-todo-davinci/config.test.json
  • javascript/reactjs-todo-davinci/package.json
  • javascript/reactjs-todo-davinci/playwright.config.ts
  • javascript/reactjs-todo-davinci/webpack.config.js
  • javascript/reactjs-todo-journey/.env.example
  • javascript/reactjs-todo-journey/.gitignore
  • javascript/reactjs-todo-journey/README.md
  • javascript/reactjs-todo-journey/client/components/journey/journey.hook.js
  • javascript/reactjs-todo-journey/client/constants.js
  • javascript/reactjs-todo-journey/client/context/oidc.context.js
  • javascript/reactjs-todo-journey/config.example.json
  • javascript/reactjs-todo-journey/config.test.json
  • javascript/reactjs-todo-journey/e2e/embedded-login.spec.js
  • javascript/reactjs-todo-journey/package.json
  • javascript/reactjs-todo-journey/playwright.config.js
  • javascript/reactjs-todo-journey/vite.config.js
  • javascript/reactjs-todo-oidc/.env.example
  • javascript/reactjs-todo-oidc/.gitignore
  • javascript/reactjs-todo-oidc/README.md
  • javascript/reactjs-todo-oidc/client/README.md
  • javascript/reactjs-todo-oidc/client/constants.js
  • javascript/reactjs-todo-oidc/client/context/oidc.context.js
  • javascript/reactjs-todo-oidc/config.example.json
  • javascript/reactjs-todo-oidc/config.test.pingam.json
  • javascript/reactjs-todo-oidc/config.test.pingone.json
  • javascript/reactjs-todo-oidc/package.json
  • javascript/reactjs-todo-oidc/playwright.config.ts
  • javascript/reactjs-todo-oidc/webpack.config.js

Comment thread javascript/reactjs-todo-davinci/client/constants.js Outdated
Comment thread javascript/reactjs-todo-davinci/playwright.config.ts Outdated
Comment thread javascript/reactjs-todo-davinci/README.md
Comment thread javascript/reactjs-todo-journey/client/constants.js Outdated
Comment thread javascript/reactjs-todo-journey/client/constants.js
Comment thread javascript/reactjs-todo-journey/vite.config.js Outdated
@vatsalparikh

Copy link
Copy Markdown
Contributor

We should update reactjs-todo-login-widget's configuration too

The login widget app uses @forgerock/login-widget, with its own configuration().set() API, not the OIDC/Journey/Davinci factory functions this ticket implements. I guess the unified config schema and "make config" utilities don't apply here at the moment. We might need a ticket for implementing this in the login framework repo as well, though.

You're right, my bad. Login widget is unrelated here.

@vatsalparikh vatsalparikh left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's great that we are explaining how to configure things the new way. We should continue to explain in the README that this unified config is optional. We should do this for all three sample apps: davinci, journey, oidc. This way the sample app consumers (humans / ai agents) know that configuration works both ways and they can use either, and that this is backward compatible.

@vatsalparikh vatsalparikh left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor comments

Comment thread javascript/reactjs-todo-oidc/webpack.config.js
Comment thread javascript/reactjs-todo-journey/e2e/embedded-login.spec.js Outdated
@SteinGabriel

Copy link
Copy Markdown
Contributor Author

It's great that we are explaining how to configure things the new way. We should continue to explain in the README that this unified config is optional. We should do this for all three sample apps: davinci, journey, oidc. This way the sample app consumers (humans / ai agents) know that configuration works both ways and they can use either, and that this is backward compatible.

Good point. I added a disclaimer saying the new config is optional.
Thanks!

@SteinGabriel

Copy link
Copy Markdown
Contributor Author

Note: CI checks are failing because makeOidcConfig and makeJourneyConfig are not present in the currently installed sdk-utilities@2.0.0. These functions will only become available in sdk-utilities@2.1.0. I think we could either wait for the SDK release and updating the package version within this PR, or merging as-is and addressing the sdk-utilities version update in a later ticket.
cc: @vatsalparikh @cerebrl @ryanbas21 @ancheetah

@vatsalparikh

Copy link
Copy Markdown
Contributor

Note: CI checks are failing because makeOidcConfig and makeJourneyConfig are not present in the currently installed sdk-utilities@2.0.0. These functions will only become available in sdk-utilities@2.1.0. I think we could either wait for the SDK release and updating the package version within this PR, or merging as-is and addressing the sdk-utilities version update in a later ticket. cc: @vatsalparikh @cerebrl @ryanbas21 @ancheetah

Sounds good. There are already such PRs waiting for 2.1 to be released. We can label the PR as do not merge for now and proceed.

vatsalparikh
vatsalparikh previously approved these changes Jun 30, 2026

@vatsalparikh vatsalparikh left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested locally, all three oidc, journey, and davinci work as expected, looks great!

feat(reactjs-todo-oidc): migrate SDK config to config.json

feat(reactjs-todo-journey): migrate SDK config to config.json

feat(sample-apps): inject SDK config via env var for e2e, fall back to
config.json

fix(reactjs-todo-davinci): migrate fido playwright block to unified
config

fix(reactjs-todo-journey): replace deprecated assert with import
attribute

fix(reactjs-todo-oidc): remove REST_OAUTH vars from env.example, add CI
clarification

docs: update README setup sections to reflect config.json migration

feat(reactjs-todo-davinci): wire make*Config from sdk-utilities

feat(reactjs-todo-oidc): wire makeOidcConfig from sdk-utilities

feat(reactjs-todo-journey): wire make*Config from sdk-utilities

fix(sample-apps): derive redirectUri dynamically from window.location.origin

fix(reactjs-todo-davinci): guard SDK_CONFIG JSON.parse against malformed input

fix(reactjs-todo-davinci): remove unused testFidoConfig import

fix(reactjs-todo-davinci): align README redirect URI and CORS origins to https

fix(reactjs-todo-journey,reactjs-todo-oidc): guard SDK_CONFIG JSON.parse against malformed input

fix(reactjs-todo-journey,reactjs-todo-oidc): preserve oidc.redirectUri from config when present

fix(reactjs-todo-journey): use fileURLToPath instead of .pathname in vite config

fix(reactjs-todo-davinci): add json to useEffect dependency array in oidc context

docs: add backward-compat note to SDK credentials section in all three READMEs

test(reactjs-todo-journey): remove unnecessary afterEach cleanup hook
@SteinGabriel SteinGabriel merged commit aff3c6c into main Jul 13, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants